System and Method of Recording Media Content

ABSTRACT

A method includes receiving a first data stream including first media content. The first data stream corresponds to a first channel. The method further includes detecting a channel change request from the first channel to a second channel. The method also includes storing user history data at a media device. The user history data indicates a portion of the first media content that had been received when the channel change request was detected. The method includes providing, to a display device, second media content of a received second data stream corresponding to the second channel. The method further includes, in response to detecting a second channel change request to return to the first channel, providing to a display device, the first media content of the first data stream beginning from a location of the first media content indicated by the user history data.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority from U.S.patent application Ser. No. 13/314,536, filed Dec. 8, 2011 and entitled“SYSTEM AND METHOD OF RECORDING MEDIA CONTENT”, now issued as U.S. Pat.No. ______, which is incorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure is generally related to recording media content.

BACKGROUND

Advances in technology have enabled access to television programs forboth recording and immediate viewing. A user may watch a particulartelevision program (e.g., a news program) on a particular channel whilerecording a different television program (e.g., a movie) on anotherchannel. A user may also watch a television program on a particularchannel while simultaneously recording the television program. A usermay also schedule television program for future recording.

Problems can arise during recording of a television program. Forexample, the recorded television program may have unexpected segments,such as breaking news or weather alerts, that result in missing segmentsof the expected program. In another example, an event, such as poweroutage at a recording device (e.g., set-top box) or a recording devicemalfunction, may interrupt recording of the television program. Inanother example, a media content provider (i.e., a television programprovider) may fail to provide the television program at a scheduled timeand may instead provide a different program.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a particular embodiment of a system to recordmedia content;

FIG. 2 is a diagram of a particular embodiment of an Internet protocoltelevision (IPTV) system in which the system of FIG. 1 may beintegrated;

FIG. 3 is a flow chart of a first particular embodiment of a method torecord media content;

FIG. 4 is a flow chart of a second particular embodiment of a method torecord media content; and

FIG. 5 is a block diagram of an illustrative embodiment of a generalcomputer system.

DETAILED DESCRIPTION

Systems and methods of recording media content are disclosed. A datastream from a server may be received at a media device (e.g., a set-topbox). The data stream may be an Internet protocol television (IPTV)stream, a cable television stream, a satellite television stream, anaudio stream or another type of data stream. Media content may beextracted from the data stream and stored at a memory in the mediadevice. For example, data corresponding to the media content may bestored at the media device based on a scheduled recording of the mediacontent (e.g., a movie) from a particular television channel. Whilereceiving the data stream or after recording of the media content iscompleted, the media device may evaluate the recorded media content(i.e., the stored data) to determine whether the media contentcorresponds to expected media content. For example, the media device maydetermine whether the recorded media content corresponds to a particularmovie scheduled for recording. In another example, the media device maydetermine whether a quality of the recorded media content corresponds toan expected quality level. Upon determining that the recorded mediacontent does not correspond to the expected media content, the mediadevice may request that a server to send one or more segments of mediacontent, where the one or more requested segments correspond to part ofor all of the expected media content.

Additionally, systems and methods are disclosed for holding a user'splace in a channel. For example, after a user has changed from left aparticular channel (e.g., changed to another channel), and subsequentlyreturns to the particular channel, the systems and methods disclosed mayprovide, to a display device, media content corresponding to theparticular channel beginning where the user left the particular channel.To illustrate, a media device may detect a channel change request tochange a channel from a first channel to a second channel. Upondetecting the channel change request, the media device may store userhistory data corresponding to the first channel that indicates a portionof the media content that had been received at the time the channelchange request was detected. Upon a return to the first channel, themedia device may provide the media content corresponding to the firstchannel beginning from the portion indicated in the user history data.

In a particular embodiment, a method includes receiving a data stream ata media device and extracting data from the data stream, where the datacorresponds to received media content. The method further includesstoring the extracted data at a memory as stored media content anddetermining whether the stored media content corresponds to expectedmedia content. The method also includes, in response to determining thatthe stored media content does not correspond to the expected mediacontent, sending a content request to a server. The content requestidentifies a segment of the expected media content that does notcorrespond to the stored media content.

In another particular embodiment, a method includes receiving, at amedia device, a first data stream including first media content, wherethe first data stream corresponds to a first channel. The method furtherincludes detecting at the media device a channel change request from thefirst channel to a second channel. The method includes storing userhistory data at the media device. The user history data indicates adeparture point of the first media content that had been received whenthe channel change request was detected. The method further includesproviding, by the media device to a display device, second media contentof a received second data stream corresponding to the second channel.The method also includes, in response to detecting a second channelchange request to return to the first channel, providing by the mediadevice to a display device, the first media content of the first datastream beginning from the departure point of the first media contentindicated by the user history data.

In another particular embodiment, an apparatus includes a processor anda memory. The memory stores instructions that, when executed by theprocessor, cause the processor to perform operations. The operationsinclude providing to a display device, first media content of a firstdata stream corresponding to a first channel. The operations furtherinclude detecting a channel change request from the first channel to asecond channel. The operations also include providing to the displaydevice, second media content of a second data stream corresponding tothe second channel. The operations include, in response to detecting asecond channel change request to return to the first channel, providingto the display device, the first media content of the first data streambeginning from a location corresponding to a time of the channel changerequest.

In another particular embodiment, a computer-readable storage deviceincludes instructions that, when executed by a processor, cause theprocessor to perform operations. The operations include receiving afirst data stream including first media content, where the first datastream corresponds to a first channel. The operations include, inresponse to detecting a channel change request from the first channel toa second channel, storing user history data at a memory. The userhistory data indicates a portion of the first media content that hadbeen received when the channel change request was detected. Theoperations further include providing, to a display device, second mediacontent of a second data stream corresponding to the second channel. Theoperations also include, in response to detecting a second channelchange request to return to the first channel, providing to a displaydevice, the first media content of the first data stream beginning froma location of the first media content indicated by the user historydata.

FIG. 1 is a diagram of a particular embodiment of a system 100 to recordmedia content. The system 100 includes a set-top box 110 and a displaydevice 160 that is coupled to the set-top box 110. The set-top box 110is configured to receive media content via a distribution network 130.

The set-top box 110 may include a network interface 111, an outputinterface 114, an input interface 117, a digital video recorder (DVR)116, content update logic 115, stream continuity logic 112, and a memory113. The set-top box 110 may be configured to receive one or more datastreams from a server via the network interface 111. For example, thenetwork interface 111 of the set-top box 110 may be configured tocommunicate with a server of a satellite television network, a cabletelevision network, an Internet Protocol Television (IPTV) network, oranother content distribution network, or a combination thereof. Thenetwork interface 111 may be a wired or wireless network interface, suchas an Ethernet interface, an Institute of Electrical and ElectronicsEngineers (IEEE) 802.11 interface, a coaxial interface, another suitableinterface, or any combination thereof. In a particular embodiment, theset-top box 110 is communicatively coupled to the distribution network130 via the network interface 111.

In a particular embodiment, the output interface 114 may be a wired orwireless interface. For example, the output interface 114 may include ahigh-definition multimedia interface (HDMI), a digital visual interface(DVI), a separate video (s-video) interface, a component videointerface, a coaxial interface, a composite video interface, an opticalor other audio interface, another output interface, or any combinationthereof. In a particular embodiment, the set-top box 110 provides mediacontent to the display device 160 (e.g., a television) via the outputinterface 114. The media content may correspond to data extracted from adata stream received at the set-top box via the network interface 111.

In a particular embodiment, the input interface 117 may be a wired orwireless interface. The set-top box 110 may be configured to receivecommands from one or more input devices (e.g., an illustrative remotecontrol device 170) via the input interface 117. For example, a user mayenter a channel number, a channel up command, a channel down command, aprevious channel command, or a command to select a particular channel ofan electronic program guide into the remote control device 170,resulting in a channel change request. The user may also use the remotecontrol device 170 to initiate or schedule recording of media content atthe set-top box 110. For example, the user may cause a particularprogram or media content on a particular channel to be recorded. Theparticular channel may correspond to a data stream received at theset-top box 110 via the network interface 111 from a particular networkaddress (e.g., a multicast address of an IPTV system) or within aparticular frequency range associated with the particular channel.

In a particular embodiment, the set-top box 110 may receive more thanone data stream at a particular time. For example, the set-top box 110may receive a first data stream while substantially simultaneouslyreceiving a second data stream. The second data stream may include datacorresponding to second media content. Both the first media content andthe second media content may be recorded, or the media content of one ofthe data streams may be processed and provided to the display device 160in real-time (i.e., without long-term recording of the media content bythe DVR 116). As used herein, “recording” media content refers tostoring data corresponding to the media content in a non-volatile memoryof the DVR 116. Thus, recording is distinct from buffering packets of adata stream for quality control, packet sequencing, etc.

In a particular embodiment, the set-top box 110 may store data extractedfrom a received data stream at the DVR 116. The set-top box 110 mayprovide the stored data (i.e., the stored media content) from the DVR116 to the display device 160. For example, the stored media content maycorrespond to a particular television program that a user scheduled forrecording. The set-top box 110 may also store information related tomedia content that is being recorded or scheduled to be recorded. Forexample, information related to content formats (e.g., standarddefinition (SD), high definition (HD), or three-dimensional (3-D)) ofmedia content being recorded or scheduled to be recorded may be storedat the DVR 116. In an alternative embodiment, content format informationmay be stored at the set-top box 110 in a memory that is separate fromthe DVR 116, such as the memory 113.

The set-top box 110 may also store other information regarding mediacontent that is being recorded or scheduled to be recorded. For example,the set-top box 110 may store one or more threshold values that areassociated with expected quality level of the media content. Thethreshold values may be used to determine whether the recorded mediacontent is of satisfactory quality. The threshold values may be defaultvalues or values specified by a user or values specified by the contentprovider. Properties of stored (i.e., recorded) media content may becompared to the threshold values to determine whether the stored mediacontent satisfies the threshold values and thus is of satisfactoryquality. To illustrate, stored media content may fail to satisfy aparticular threshold value when the stored media content has too muchjitter (i.e., jitter above a jitter threshold). In another illustrativeexample, stored media content may fail to satisfy a particular thresholdvalue when an audio level of the stored media content is too low (i.e.,is below an audio level threshold). The threshold values may be relatedto any media quality parameter, such as audio noise level parameters andpicture clarity parameters.

The set-top box 110 may also store information used to determine whetherthe stored media content includes unscheduled content (i.e., mediacontent that was not intended to be recorded). Examples of unscheduledcontent include breaking news, weather alerts, and a television programthat runs beyond an allotted time. The information used to determinewhether the stored media content includes unscheduled content mayinclude, for example, hash values related to the expected media content,information regarding a duration of the expected media content, andinformation regarding an expected recorded size of the expected mediacontent (e.g., in bytes). Information regarding the duration of theexpected media content and information regarding the expected recordedsize of the expected media content may also be used to determine whetherone or more segments are missing from the stored media content.Information regarding the expected recorded size of the expected mediacontent may also be used to determine whether a format of the storedmedia content matches an expected format, such as an HD content format.

Additionally or in the alternative, the set-top box 110 may storeinformation used to determine whether the stored media contentcorresponds to the media content scheduled for recording. For example,the set-top box 110 may store the title of media content scheduled forrecording. Information regarding the duration of the expected mediacontent and/or information regarding the expected recorded size of theexpected media content may also be used to determine whether the storedmedia content corresponds to the media content scheduled for recording.

In a particular embodiment, the content update logic 115 may determinewhether the stored media content corresponds to expected media content.For example, the content update logic 115 may determine whether thestored media content corresponds to the expected media content bydetermining whether a quality parameter of the stored media contentsatisfies a quality threshold. To illustrate, the content update logic115 may determine that the stored media content does not correspond tothe expected media content if the stored media content does not satisfyan expected picture quality threshold (e.g., a picture resolutionthreshold) or an audio quality threshold (e.g., a noise threshold).

In another particular embodiment, the content update logic 115 maydetermine whether the stored media content corresponds to the expectedmedia content by determining whether one or more segments are missingfrom the stored media content. For example, the content update logic 115may compare an expected duration of the stored media content to anactual duration of the stored media content. The content update logic115 may determine that the stored media content does not correspond tothe expected media content if the duration of the stored media contentis shorter or longer than the expected duration of the stored mediacontent by a threshold amount. Similarly, the content update logic 115may compare an expected size of the stored media content to an actualsize of the stored media content. The content update logic 115 maydetermine that the stored media content does not correspond to theexpected media content if a size of the stored media content is smalleror larger than the expected size of the stored media content by athreshold amount.

In a particular embodiment, the content update logic 115 may determinewhether the stored media content corresponds to the expected mediacontent by determining whether a format of the stored media contentmatches an expected format. For example, the expected format may be anSD content format, an HD content format, or a 3-D content format. Toillustrate, the content update logic 115 may determine that the storedmedia content does not correspond to the expected media content if theexpected format of the stored media content is an HD content format andan actual content format of the stored media content is an SD contentformat. In an alternative embodiment, the expected format of the storedmedia content may be a tactile format, an olfactory format, or any othermedia content format.

In a particular embodiment, the content update logic 115 may determinewhether the stored media content corresponds to the expected mediacontent by determining whether a format of the stored media contentcorresponds to an expected video compression format. For example, theexpected video compression format may be H.262, H.263, H.264, or VC-2.To illustrate, the content update logic 115 may determine that thestored media content does not correspond to the expected media contentif the expected video compression format of the stored media content isan H.264 format and an actual video compression format of the storedmedia content is an H.262 format.

In a particular embodiment, the content update logic 115 may determinewhether the stored media content corresponds to the expected mediacontent by determining whether an audio format of the stored mediacontent corresponds to an expected audio format. For example, theexpected audio format may be WAVEform (WAV), Windows Media Audio (WMA),or Motion Picture Experts Group Audio Layer III (MP3). To illustrate,the content update logic 115 may determine that the stored media contentdoes not correspond to the expected media content if the expected audioformat of the stored media content is an MP3 format and an actual audioformat of the stored media content is a WMA format.

The content update logic 115 may also determine whether the stored mediacontent corresponds to the expected media content by determining whetherthe stored media content corresponds to a particular program (i.e.,media content) that was selected or scheduled for recording. Forexample, a user may schedule a particular television program (e.g., aparticular movie) for recording at the set-top box 110. The contentupdate logic 115 may determine whether the recorded media contentcorresponds to the particular television program based on information,such as movie title, embedded in the television program. The contentupdate logic 115 may also determine whether the recorded televisionprogram corresponds to a particular movie by comparing the duration ofthe recorded television program to the actual duration of the storedmovie. Similarly, the content update logic 115 may determine whether therecorded television program corresponds to a particular movie bycomparing the size of the recorded television program to the actual sizeof the recorded movie.

In a particular embodiment, the content update logic 115 may determinethat the stored media content does not correspond to the expected mediacontent if a threshold portion of the stored media content does notcorrespond to the expected media content. For example, the contentupdate logic 115 may determine that the stored media content does notcorrespond to the expected media content if a particular percentage ofthe stored media content does not correspond to a movie selected orscheduled for recording. Alternatively or in addition, the contentupdate logic 115 may determine that the stored media content does notcorrespond to the expected media content if a segment of the storedmedia content between two timestamps of the media content does notcorrespond to media content selected or scheduled for recording.

In another particular embodiment, the content update logic 115 maydetermine that the stored media content does not correspond to theexpected media content if any portion of the stored media content doesnot correspond to a movie selected or scheduled for recording. Toillustrate, the content update logic 115 may determine that the storedmedia content does not correspond to the expected media content if thestored media content includes, for example, unscheduled (i.e., notschedule for recording) content, such as a breaking news segment.

In a particular embodiment, in response to determining that the storedmedia content does not correspond to the expected media content, thecontent update logic 115 may send a content request to a server. Thecontent request may identify a segment of the expected media contentthat does not correspond to the stored media content. For example, theidentified segment of the expected media content that does notcorrespond to the stored media content may include the entire expectedmedia content. Alternatively, the identified segment may correspond toless than the entire expected media content. For example, the identifiedsegment may correspond to a portion of the expected media content thatis scrambled. As another example, the identified segment may correspondto a portion of the expected media content that is includes unscheduledcontent, such as breaking news.

In a particular embodiment, the set-top box 110 may be configured toreceive second media content that corresponds to the segment of theexpected media content that does not correspond to the stored mediacontent. As described above, the stored media content may be extractedfrom a first data stream and the second media content may be extractedfrom a second media stream received at the set-top box 110 via thenetwork interface 111. In a particular embodiment, the second datastream is received from a server at a data transfer rate that is higherthan a data transfer rate at which the first data stream is received. Ina particular alternative embodiment, the second data stream is receivedfrom the server at a data transfer rate that is lower than a datatransfer rate at which the first data stream is received. The segment ofthe expected media content that does not correspond to the stored mediacontent may include the entire expected media content or a portion ofthe expected media content.

The content update logic 115 may be configured to update the storedmedia content based on the second media content extracted from thesecond data stream. For example, the content update logic 115 mayreplace a portion of the stored media content with the received secondmedia content corresponding to the segment of the expected media contentthat does not correspond to the stored media content. The portion of thestored media content that is replaced may correspond to part or all ofthe stored media content.

By evaluating the stored media content during or at the end ofrecording, media content stored at the set-top box 110 may be updated toreduce or eliminate deficiencies in the stored media content before auser accesses the stored media content.

In a particular embodiment, the system 100 of FIG. 1 may also enable auser, upon a return to a particular channel, to continue watching atelevision program (i.e., media content) beginning from a location ofthe television program indicated by a user history data 119. Theparticular channel may correspond to a data stream received at theset-top box 110 via the network interface 111 from a particular networkaddress (e.g., a multicast address of an IPTV system) or within afrequency range associated with the particular channel. For example, auser watching first media content on a first channel may desire tochange from the first channel to a second channel for some duration oftime and to subsequently return back to the first channel. Toillustrate, the user may use the remote control device 170 to input achannel change request, such as a request to switch from the firstchannel to a second channel. The stream continuity logic 112 of theset-top box 110 may be configured to detect the channel change request.Upon detection of the channel change request, the stream continuitylogic 112 may store user history data 119 in the memory 113 of theset-top box 110. For example, the user history data 119 may indicate aportion of the first media content corresponding to the first channelthat had been received when the channel change request was detected. Toillustrate, timestamp and received media content size may be used toindicate the portion of the first media content.

In a particular embodiment, the memory 113 may also include userpreferences data 140. The user preferences data 140 may specifyparticular channels for which user history data 119 is to be stored. Forexample, the user preferences data 140 may include channel identifiers,such as channel numbers or Internet protocol (IP) addresses. In aparticular embodiment, the user preferences data 140 may beautomatically determined by the set-top box 110. For example, channelidentifiers included in the user preferences data 140 may correspond tofrequently selected channels. Alternatively or in addition, the user mayalso identify preferred channels for inclusion in the user preferencesdata 140. In another particular embodiment, channel identifierscorresponding to all available channels may be included in the userpreferences data 140.

In response to detecting the channel change request to change from thefirst channel to the second channel, the set-top box 110 may provide tothe display device 160 second media content of a received second datastream corresponding to the second channel. For example, the set-top box110 may receive the second data stream in response to a request sent bythe set-top box 110 to the server of the distribution network 130. Theset-top box 110 may process the second data stream to extract receivedmedia content from the second data stream.

The stream continuity logic 112 of the set-top box 110 may be configuredto detect a second channel change request to return to the firstchannel. In response to detecting the second channel change request toreturn to the first channel, the set-top box 110 may provide to thedisplay device 160 the first media content of the first data stream(i.e., the data stream corresponding to the first channel). The firstmedia content may resume where it left off in response to the firstchannel change request. For example, the first media content may beprovided beginning from a location of the first media content indicatedby the user history data 119. To illustrate, if the portion of the firstmedia content of the first data stream indicated by the user historydata 119 corresponds to a first half hour of a particular televisionprogram, upon return to the first channel, the set-top box 110 may beconfigured to provide to the display device 160 the particulartelevision program beginning from the end of the first hour of theprogram. In a particular embodiment, the end of the first hour of theprogram may be indicated by a timestamp.

In a particular embodiment, the user might switch to several channelsbefore returning to the first channel. For example, the user maysequentially change from the first channel to a second channel followedby a third channel before returning to the first channel. If a channelidentifier corresponding to the first channel is specified in the userpreferences data 140, the stream continuity logic 112 may store the userhistory data 119 for the first channel in the memory 113. If the userreturns to the first channel within a threshold time after firstchanging from the first channel to the second channel, the first mediacontent may be provided to the display device 160 beginning from alocation of the first media content indicated by the user history data119.

In a particular embodiment, in response to detecting the channel changerequest from the first channel to the second channel, the set-top box110 may request from a server a second data stream corresponding to thesecond channel and the first data stream beginning from the location ofthe first media content indicated by the user history data 119. Forexample, the set-top box 110 may store in a memory (such as the memory113 or a memory of the DVR 116) media content extracted from the firstdata stream beginning from the location of the first media contentindicated by the user history data 119. The set-top box 110 maysubsequently provide from the memory to the display device 160 thestored first media content beginning from the location of the firstmedia content indicated by the user history data 119. In anotherembodiment, the set-top box 110 may, in response to detecting the secondchannel change request to return to the first channel, request from theserver the first data stream corresponding to the first channelbeginning from the location of the first media content indicated by theuser history data 119.

During operation, the set-top box 110 may receive a data stream (e.g.,an IPTV data stream) and store media content extracted from the datastream. The set-top box 110 may store the extracted data at a memory,such as at a memory of the DVR 116. The content update logic 115 maydetermine whether the stored media content corresponds to expected mediacontent. For example, the set-top box 110 may determine whether aquality of the stored media content satisfies quality criteria. Inresponse to determining that the stored media content does notcorrespond to the expected media content, the content update logic 115may send a content request to a server identifying a segment of theexpected media content that does not correspond to the stored mediacontent. For example, the content request may identify a ten-minutesegment of the expected media content that does not correspond to thestored media content. The set-top box 110 may receive from the server asecond data stream including second media content. The received mediacontent may include the segment of the expected media content that doesnot correspond to the stored media content. The content update logic 115may update the stored media content based on the received second mediacontent. For example, the content update logic 115 may replace a portionof the stored media content with the received media content.

Additionally, while receiving a data stream corresponding to a firstchannel, the set-top box 110 may detect a channel change request tochange from the first channel to a second channel. The stream continuitylogic 112 may store user history data 119 for the first channel at thememory 113. The user history data 119 may indicate a portion of thefirst media content extracted from the first data stream that had beenreceived when the channel change request was detected. In response tothe channel change request to change to the second channel, the set-topbox 110 may provide to the display device 160 second media content of areceived second data stream corresponding to the second channel. Forexample, the set-top box 110 may extract the second media content fromthe second data stream and provide the second media content to thedisplay device 160. The extracted media content may be provided to thedisplay device 160. In response to detecting a second channel changerequest to return to the first channel, the set-top box 110 may providethe first data stream beginning a location of the first media contentindicated by the user history data 119.

Thus, the system 100 of FIG. 1 may provide improved user experience byproviding a seamless restoration of recorded content before the contentis presented to the user. By evaluating the stored media content duringor at the end of recording, the system 100 of FIG. 1 may provide to theuser with media content that is consistent with expected content. Whenthe user is ready to watch the particular recorded media content, therecorded media content may already be updated to match the user'sexpectations. Additionally, the system 100 of FIG. 1 may enable a userto resume watching a particular television program upon a return to aparticular channel.

Although the set-top box 110 and the display device 160 are shown as twoseparate devices, in a particular embodiment, the set-top box 110 andthe display device 160 may be integrated in a single media device.Additionally, although FIG. 1 illustrates a set-top box, alternativeembodiments may include other media devices including devices that havean integrated display device. For examples, other embodiments mayinclude a lap top computer, a mobile phone, other forms of handhelddevices, other similar devices, or any combination thereof. Further, ina particular embodiment, operations of the update logic 115 and thestream continuity logic 112 may be at least partially performed by aprocessor. The DVR 116 may also be included in the set-top box 110 ormay be a separate component of the system 100 of FIG. 1.

FIG. 2 illustrates a particular embodiment of an Internet ProtocolTelevision (IPTV) system 200. As shown, the system 200 can include aclient facing tier 202, an application tier 204, an acquisition tier206, and an operations and management tier 208. Each tier 202, 204, 206,208 is coupled to a private network 210, to a public network 212, suchas the Internet, or to both the private network 210 and the publicnetwork 212. For example, the client-facing tier 202 can be coupled tothe private network 210. Further, the application tier 204 can becoupled to the private network 210 and to the public network 212. Theacquisition tier 206 can also be coupled to the private network 210 andto the public network 212. Additionally, the operations and managementtier 208 can be coupled to the public network 212.

As illustrated in FIG. 2, the various tiers 202, 204, 206, 208communicate with each other via the private network 210 and the publicnetwork 212. For instance, the client-facing tier 202 can communicatewith the application tier 204 and the acquisition tier 206 via theprivate network 210. The application tier 204 can communicate with theacquisition tier 206 via the private network 210. Further, theapplication tier 204 can communicate with the acquisition tier 206 andthe operations and management tier 208 via the public network 212.Moreover, the acquisition tier 206 can communicate with the operationsand management tier 208 via the public network 212. In a particularembodiment, elements of the application tier 204, including, but notlimited to, a client gateway 214, can communicate directly with theclient-facing tier 202.

The client-facing tier 202 can communicate with user equipment via anaccess network 216, such as an Internet Protocol Television (IPTV)access network. In an illustrative embodiment, customer premisesequipment (CPE) 218, 220 can be coupled to a local switch, router, orother device of the access network 216. The client-facing tier 202 cancommunicate with a first representative set-top box device 222 at afirst customer premise via the first CPE 218 and with a secondrepresentative set-top box device 224 at a second customer premise viathe second CPE 220. The CPE 218, 220 can include routers, local areanetwork devices, modems, such as digital subscriber line (DSL) modems,residential gateways (e.g., the residential gateway 120 of FIG. 1 or theresidential gateway 240 of FIG. 2) any other suitable devices forfacilitating communication between a set-top box device and the accessnetwork 216, or any combination thereof.

The client-facing tier 202 can be coupled to the CPE 218, 220 viadigital subscriber lines, coaxial cables, fiber optic cables, or otherconnectors. In a particular embodiment, the client-facing tier 202 iscoupled to the CPE 218, 220 via fiber optic cables. In anotherparticular embodiment, the CPE 218, 220 are digital subscriber line(DSL) modems that are coupled to one or more network nodes via twistedpairs. The client-facing tier 202 can be coupled to the network nodesvia fiber-optic cables or other types of connectors. Each set-top boxdevice 222, 224 can process data received via the access network 216 andvia an IPTV software platform.

The first set-top box device 222 can be coupled to a first externaldisplay device, such as a first television monitor 226, and the secondset-top box device 224 can be coupled to a second external displaydevice, such as a second television monitor 228. Moreover, the firstset-top box device 222 can communicate with a first remote control 230,and the second set-top box device 224 can communicate with a secondremote control 232. The set-top box devices 222, 224 can include IPTVset-top box devices, video gaming devices or consoles that are adaptedto receive IPTV content, personal computers or other computing devicesthat are adapted to emulate set-top box device functionalities, anyother device adapted to receive IPTV content and transmit data to anIPTV system via an access network, or any combination thereof. In aparticular embodiment, the set-top box devices 222, 224 may correspondto the set-top box 110 of FIG. 1.

In an exemplary, non-limiting embodiment, each set-top box device 222,224 can receive data, video, or any combination thereof, from theclient-facing tier 202 via the access network 216 and render or displaythe data, video, or any combination thereof, at the television monitor226, 228 to which it is coupled. In an illustrative embodiment, theset-top box devices 222, 224 can include tuners that receive and decodetelevision programming signals or packet streams for transmission to thetelevision monitors 226, 228. Further, the set-top box devices 222, 224can include a STB processor 234 and a STB memory device 236 that isaccessible to the STB processor 234. In one embodiment, a computerprogram, such as the STB computer program 284, can be embedded withinthe STB memory device 236. For example, the STB computer program 284 mayinclude logic, modules, and/or instructions executable by the processor234 to implement the content update logic 115 of FIG. 1 and the streamcontinuity logic 112 of FIG. 1.

In an illustrative embodiment, the client-facing tier 202 can include aclient-facing tier (CFT) switch 242 that manages communication betweenthe client-facing tier 202 and the access network 216 and between theclient-facing tier 202 and the private network 210. As illustrated inFIG. 2, the CFT switch 242 is coupled to one or more data servers, suchas D-servers 244, that store, format, encode, replicate, or otherwisemanipulate or prepare video content for communication from theclient-facing tier 202 to the set-top box devices 222, 224. The CFTswitch 242 can also be coupled to a terminal server 246 that providesterminal devices with a connection point to the private network 210. Ina particular embodiment, the CFT switch 242 can be coupled to avideo-on-demand (VOD) server 248 that stores or provides VOD contentimported by the IPTV system 200. Further, the CFT switch 242 is coupledto one or more video servers 250 that receive video content and transmitthe content to the set-top box devices 222, 224 via the access network216. In a particular embodiment, the client-facing tier 202 alsoincludes a content update server 290. The content update server 290 mayprovide media content to the first set-top box device 222, to the secondset-top box device 224, or both, to update stored media content at oneor more of the set-top box devices 222. The content update server 290may also provide media content of a data stream corresponding to a firstchannel to the first set-top box device 222 and/or to the second set-topbox device 224, where the first set-top box device 222 and/or the secondset-top box device 224 provide the media content to the display devicebeginning from a particular location of the media content.

In an illustrative embodiment, the client-facing tier 202 cancommunicate with a large number of set-top boxes, such as therepresentative set-top box devices 222, 224, over a wide geographicarea, such as a regional area, a metropolitan area, a viewing area, adesignated market area or any other suitable geographic area, marketarea, or subscriber or customer group that can be supported bynetworking the client-facing tier 202 to numerous set-top box devices.In a particular embodiment, the CFT switch 242, or any portion thereof,can include a multicast router or switch that feeds one or more videostreams from a video server to multiple set-top box devices.

As illustrated in FIG. 2, the application tier 204 can communicate withboth the private network 210 and the public network 212. The applicationtier 204 can include a first application tier (APP) switch 252 and asecond APP switch 254. In a particular embodiment, the first APP switch252 can be coupled to the second APP switch 254. The first APP switch252 can be coupled to an application server 256 and to an OSS/BSSgateway 258. In a particular embodiment, the application server 256 canprovide applications to the set-top box devices 222, 224 via the accessnetwork 216, which enable the set-top box devices 222, 224 to providefunctions, such as display, messaging, processing of IPTV data and VODmaterial, etc. In a particular embodiment, the OSS/BSS gateway 258includes operation systems and support (OSS) data, as well as billingsystems and support (BSS) data. In one embodiment, the OSS/BSS gateway258 can provide or restrict access to an OSS/BSS server 260 that storesoperations and billing systems data.

The second APP switch 254 can be coupled to a domain controller 262 thatprovides Internet access, for example, to users at their computers 264via the public network 212. For example, the domain controller 262 canprovide remote Internet access to IPTV account information, e-mail,personalized Internet services, or other online services via the publicnetwork 212. In addition, the second APP switch 254 can be coupled to asubscriber and system store 266 that includes account information, suchas account information that is associated with users who access the IPTVsystem 200 via the private network 210 or the public network 212. In anillustrative embodiment, the subscriber and system store 266 can storesubscriber or customer data and create subscriber or customer profilesthat are associated with IP addresses of corresponding set-top boxdevices 222, 224. The user history data 282 may include information,such as timestamp information and media content size information,indicating a portion of the first media content that had been receivedwhen a channel change request from a first channel to a second channelis detected at one of the set-top box devices 222, 224. To illustrate,upon a return to the first channel, the set-top box device 222 mayprovide to the television monitor 226 the first media content beginningfrom a location of the first media content indicated by the user historydata 282. Similarly, the second set-top box device 224 may provide tothe television monitor 238 the first media content beginning from thelocation of the first media content indicated by the user history data282.

In a particular embodiment, the application tier 204 can include aclient gateway 214 that communicates data directly to the client-facingtier 202. In this embodiment, the client gateway 214 can be coupleddirectly to the CFT switch 242. The client gateway 214 can provide useraccess to the private network 210 and the tiers coupled thereto. In anillustrative embodiment, the set-top box devices 222, 224 can access theIPTV system 200 via the access network 216, using information receivedfrom the client gateway 214. User devices can access the client gateway214 via the access network 216, and the client gateway 214 can allowsuch devices to access the private network 210 once the devices areauthenticated or verified. Similarly, the client gateway 214 can preventunauthorized devices, such as hacker computers or stolen set-top boxdevices, from accessing the private network 210, by denying access tothese devices beyond the access network 216.

For example, when the first representative set-top box device 222accesses the client-facing tier 202 via the access network 216, theclient gateway 214 can verify subscriber information by communicatingwith the subscriber and system store 266 via the private network 210.Further, the client gateway 214 can verify billing information andstatus by communicating with the OSS/BSS gateway 258 via the privatenetwork 210. In one embodiment, the OSS/BSS gateway 258 can transmit aquery via the public network 212 to the OSS/BSS server 260. After theclient gateway 214 confirms subscriber and/or billing information, theclient gateway 214 can allow the set-top box device 222 to access IPTVcontent and VOD content at the client-facing tier 202. If the clientgateway 214 cannot verify subscriber information for the set-top boxdevice 222, e.g., because it is connected to an unauthorized twistedpair, the client gateway 214 can block transmissions to and from theset-top box device 222 beyond the access network 216.

As indicated in FIG. 2, the acquisition tier 206 includes an acquisitiontier (AQT) switch 268 that communicates with the private network 210.The AQT switch 268 can also communicate with the operations andmanagement tier 208 via the public network 212. In a particularembodiment, the AQT switch 268 can be coupled to a live acquisitionserver 270 that receives or acquires television content, movie content,advertisement content, other video content, or any combination thereof,from a broadcast service 272, such as a satellite acquisition system orsatellite head-end office. In a particular embodiment, the liveacquisition server 270 can transmit content to the AQT switch 268, andthe AQT switch 268 can transmit the content to the CFT switch 242 viathe private network 210.

In an illustrative embodiment, content can be transmitted to theD-servers 244, where it can be encoded, formatted, stored, replicated,or otherwise manipulated and prepared for communication from the videoserver(s) 250 to the set-top box devices 222, 224. The CFT switch 242can receive content from the video server(s) 250 and communicate thecontent to the CPE 218, 220 via the access network 216. The set-top boxdevices 222, 224 can receive the content via the CPE 218, 220, and cantransmit the content to the television monitors 226, 228. In anillustrative embodiment, video or audio portions of the content can bestreamed to the set-top box devices 222, 224.

Further, the AQT switch 268 can be coupled to a video-on-demand importerserver 274 that receives and stores media content received at theacquisition tier 206 and communicates the stored content to the VODserver 248 at the client-facing tier 202 via the private network 210.Additionally, at the acquisition tier 206, the video-on-demand (VOD)importer server 274 can receive content from one or more VOD sourcesoutside the IPTV system 200, such as movie studios and programmers ofnon-live content. The VOD importer server 274 can transmit the VODcontent to the AQT switch 268, and the AQT switch 268, in turn, cancommunicate the material to the CFT switch 242 via the private network210. The VOD content can be stored at one or more servers, such as theVOD server 248.

When users issue requests for VOD content via the set-top box devices222, 224, the requests can be transmitted over the access network 216 tothe VOD server 248, via the CFT switch 242. Upon receiving suchrequests, the VOD server 248 can retrieve the requested VOD content andtransmit the content to the set-top box devices 222, 224 across theaccess network 216, via the CFT switch 242. The set-top box devices 222,224 can transmit the VOD content to the television monitors 226, 228. Inan illustrative embodiment, video or audio portions of VOD content canbe streamed to the set-top box devices 222, 224.

FIG. 2 further illustrates that the operations and management tier 208can include an operations and management tier (OMT) switch 276 thatconducts communication between the operations and management tier 208and the public network 212. In the embodiment illustrated by FIG. 2, theOMT switch 276 is coupled to a TV2 server 278. Additionally, the OMTswitch 276 can be coupled to an OSS/BSS server 260 and to a simplenetwork management protocol (SNMP) monitor 280 that monitors networkdevices within or coupled to the IPTV system 200. In a particularembodiment, the OMT switch 276 can communicate with the AQT switch 268via the public network 212.

In an illustrative embodiment, the live acquisition server 270 cantransmit content to the AQT switch 268, and the AQT switch 268, in turn,can transmit the content to the OMT switch 276 via the public network212. In this embodiment, the OMT switch 276 can transmit the content tothe TV2 server 278 for display to users accessing the user interface atthe TV2 server 278. For example, a user can access the TV2 server 278using a personal computer (PC) 264 coupled to the public network 212.

FIG. 3 is a flow chart of a particular embodiment of a method 300 torecord media content. In an illustrative embodiment, the method 300 maybe performed by a media device, such as the set-top box 110 of FIG. 1 orone of the set-top box devices 222, 224 of FIG. 2.

The method 300 includes receiving a data stream at a media device, at302. For example, the set-top box 110 of FIG. 1, the first set-top boxdevice 222 of FIG. 2, or the second set-top box device 224 of FIG. 2,may receive a data stream from a server. At 304, data corresponding toreceived media content is extracted from the data stream. For example,the set-top box 110 of FIG. 1 may extract from the data stream datacorresponding to the media content. At 306, the extracted data is storedat a memory as stored media content. For example, the extracted data maybe stored at the DVR 116 of FIG. 1 or the STB memory device 236 of FIG.2. The stored data corresponding to the received media content may be apayload portion of data packets received as a data stream at the set-topbox 110 of FIG. 1, the first set-top box device 222 of FIG. 2, or thesecond set-top box device 224 of FIG. 2.

The method 300 further includes determining whether the stored mediacontent corresponds to expected media content, at 308. For example, inFIG. 1, the content update logic 115 may determine whether the storedmedia content corresponds to expected media content. To illustrate, thecontent update logic 115 may determine whether the stored media contentcorresponds to expected media content by determining whether one or moresegments are missing from the stored media content.

In response to determining that the stored media content does notcorrespond to the expected media content, a content request may be sentto a server, at 310. The content request may identify a segment of theexpected media content that does not correspond to the stored mediacontent. For example, in FIG. 1, the content update logic 115 may sendthe content request to a server of the distribution network 130.

The method 300 also includes receiving at the media device a second datastream including data corresponding to received second media content, at312. The received second media content may correspond to the segment ofthe expected media content that does not correspond to the stored mediacontent.

At 314, the stored media content is updated based on the received secondmedia content. Updating the stored media content may include replacing aportion of the stored media content with the received second mediacontent. For example, in FIG. 1, the content update logic 115 may updatethe stored media content based on the received second media content.

The method 300 of FIG. 3 enables evaluating stored media content forexpected quality, missing content, unscheduled content, and contentformat and updating of the stored media content to fill one or moremissing segments or to replace one of more segments that do not satisfya particular quality threshold, such as audio level. Thus, the method300 of FIG. 3 may provide improved user experience by providing aseamless restoration of recorded content before the content is presentedto the user. By evaluating the stored media content during or at the endof recording, the method 300 may provide to the user with media contentthat is consistent with expected content. When the user is ready towatch the particular recorded media content, the recorded media contentmay already be updated to match the user's expectations. Additionally,the method 300 may enable a user to resume watching a particulartelevision program upon a return to a particular channel.

FIG. 4 is a flow chart of a second particular embodiment of a method ofrecording media content. In an illustrative embodiment, the method 400may be performed by a media device, such as the set-top box 110 of FIG.1 or one of the set-top box devices 222, 224 of FIG. 2.

The method 400 includes receiving, at a media device, a first datastream including first media content, the first data streamcorresponding to a first channel, at 402. For example, the first channelmay correspond to an internet protocol (IP) address of an IPTV system.In other systems, such as a cable network system, the first channel maycorrespond to a particular frequency or range of frequencies. A servermay send the first data stream corresponding to a particular channel tothe set-top box 110 of FIG. 1, the first set-top box device 222 of FIG.2, the second set-top box device 224 of FIG. 2, or a combinationthereof. At 404, a channel change request may be detected at the mediadevice. The channel change request may request that the media devicechange from receiving a data stream corresponding to the first channelto receiving a data stream corresponding to a second channel. Forexample, a channel change request detected by the set-top box 110 ofFIG. 1, the first set-top box device 222 of FIG. 2, or the secondset-top box device 224 of FIG. 2 may correspond to a user input, such aschannel number, at a remote control device, such as the remote controldevice 170.

At 406, user history data is stored at the media device. The userhistory data indicates a portion of the first data stream that had beenreceived when the channel change request was detected. For example, thestream continuity logic 112 of FIG. 1 may store the user history data119 at the memory 113. The user history data 119 may include informationsuch as a timestamp corresponding to a channel change request detectiontime or size of the first media content that had been received when thechange channel request was detected at 404.

The method 400 further includes providing, by the media device to adisplay device, second media content of a received second data streamcorresponding to the second channel, at 408. For example, the set-topbox 110 of FIG. 1, the first set-top box device 222 of FIG. 2, or thesecond set-top box device 224 of FIG. 2 may provide the second mediacontent of the received second data stream corresponding to the secondchannel to a display device, such as the display device 160 of FIG. 1.In response to detecting a second channel change request to return tothe first channel, the media device may provide to a display device,such as the display device 160, the first media content of the firstdata stream beginning from a location of the first media contentindicated by the user history data, at 410. To illustrate, the set-topbox 110 of FIG. 1, the first set-top box device 222 of FIG. 2, or thesecond set-top box device 224 of FIG. 2 may request from a server thefirst data stream corresponding to the first channel and provide to thedisplay device, such as the display device 160, the media content of thefirst data stream beginning from a location of the first media contentindicated by the user history data 119. The set-top box 110 of FIG. 1,the first set-top box device 222 of FIG. 2, or the second set-top boxdevice 224 of FIG. 2 may store the first media content of the first datastream in a memory, such as the memory 113, and provide from the memoryto the display device the first media content beginning from thelocation of the first media content indicated by the user history data.

Referring to FIG. 5, an illustrative embodiment of a general computersystem is shown and is designated 500. The computer system 500 includesa set of instructions that can be executed to cause the computer system500 to perform any one or more of the methods or computer basedfunctions disclosed herein. The computer system 500, or any portionthereof, may operate as a standalone device or may be connected, e.g.,using a network, to other computer systems or peripheral devices. Forexample, the computer system 500 may include or may be included withinthe set-top box 110 of FIG. 1, the first or second representativeset-top box devices 222, 224 of FIG. 2, or any combination thereof.

The computer system 500 can also be implemented as or incorporated intovarious other devices, such as a personal computer (PC), a tablet PC, apersonal digital assistant (PDA), a mobile device, a palmtop computer, alaptop computer, a desktop computer, a communications device, a webappliance, or any other machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine. In a particular embodiment, the computer system 500 canbe implemented using electronic devices that provide audio, video, ordata communication. Further, while a single computer system 500 isillustrated, the term “system” shall also be taken to include anycollection of systems or sub-systems that individually or jointlyexecute a set, or multiple sets, of instructions to perform one or morecomputer functions.

As illustrated in FIG. 5, the computer system 500 may include aprocessor 502, e.g., a central processing unit (CPU), agraphics-processing unit (GPU), or both. Moreover, the computer system500 can include a main memory 504 and a static memory 506 that cancommunicate with each other via a bus 508. As shown, the computer system500 may further include or be coupled to the video display unit 510,such as a liquid crystal display (LCD), an organic light emitting diode(OLED), a flat panel display, a cathode ray tube (CRT) display, asolid-state display, or a projection display. For example, the videodisplay unit may be the display device 160 of FIG. 1. Additionally, thecomputer system 500 may include an input device 512, such as a keyboard,a remote control device (e.g., the remote control device 170 of FIG. 1),and a cursor control device 514 (e.g., a mouse). The computer system 500can also include a disk drive unit 516, a signal generation device 518,such as remote control device (e.g., the remote control device 170 ofFIG. 1), and a network interface device 520.

In a particular embodiment, as depicted in FIG. 5, the disk drive unit516 may include a non-transitory computer-readable medium 522, e.g., acomputer-readable storage device, in which one or more sets ofinstructions 524, e.g., software, can be embedded. Further, theinstructions 524 may embody one or more of the methods or logic asdescribed herein. In a particular embodiment, the instructions 524 mayreside completely, or at least partially, within the main memory 504,the static memory 506, and/or within the processor 502 during executionby the computer system 500. The main memory 504 and the processor 502also may include computer-readable media.

In an alternative embodiment, dedicated hardware implementations, suchas application specific integrated circuits, programmable logic arraysand other hardware devices, can be constructed to implement one or moreof the methods described herein. Applications that may include theapparatus and systems of various embodiments can broadly include avariety of electronic and computer systems. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that can be communicated between and through the modules, or asportions of an application-specific integrated circuit.

In accordance with various embodiments of the present disclosure, themethods described herein may be implemented by software programsexecutable by the computer system 500. Further, in an exemplary,non-limited embodiment, implementations can include distributedprocessing, component/object distributed processing, and parallelprocessing. Alternatively, virtual computer system processing can beconstructed to implement one or more of the methods or functionality asdescribed herein.

The present disclosure contemplates a computer-readable medium thatincludes instructions 524 or receives and executes instructions 524, sothat a device connected to a network 526 can communicate audio, video ordata over the network 526. Further, the instructions 524 may betransmitted or received over the network 526 via the network interfacedevice 520.

The term “computer-readable medium” or “processor-readable medium” mayinclude a single medium or multiple media, such as a centralized ordistributed database, and/or associated caches and servers that storeone or more sets of instructions. The term “computer-readable medium” or“processor-readable medium” may refer to any non-transitory, tangiblemedium that is capable of storing or encoding a set of instructions 524for execution by the processor 502 or that cause the computer system 500to perform any one or more of the methods or operations disclosedherein.

In a particular non-limiting, exemplary embodiment, thecomputer-readable medium can include a solid-state memory, such as amemory card or other package that houses one or more non-volatileread-only memories. Further, the computer-readable medium can be arandom access memory or other volatile re-writable memory. Additionally,the computer-readable medium can include a magneto-optical or opticalmedium, such as a disk or tapes or other storage device. Accordingly,the disclosure is considered to include any one or more of acomputer-readable storage medium and other equivalents and successormedia, in which data or instructions may be stored.

Software (e.g., the instructions 524) that is executable to implementthe disclosed methods may be stored on a tangible storage medium, suchas: a magnetic medium, such as a disk or tape; a magneto-optical oroptical medium, such as a disk; or a solid state medium, such as amemory card or other package that houses one or more read-only(non-volatile) memories, random access memories, or other re-writable(volatile) memories.

Although the present specification describes components and functionsthat may be implemented in particular embodiments with reference toparticular standards and protocols, the disclosure is not limited tosuch standards and protocols. For example, standards for Internet, otherpacket switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP,and Internet Group Management Protocol (IGMP)) and standards forencoding or viewing media content (e.g., MPEG, SMPTE, SVC and H.264)represent examples of the state of the art. Such standards mayoccasionally be superseded by faster or more efficient equivalentshaving substantially the same functions. Accordingly, replacementstandards and protocols having the same or similar functions as thosedisclosed herein are considered equivalents thereof.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus and systemsthat utilize the structures or methods described herein. Many otherembodiments may be apparent to those of skill in the art upon reviewingthe disclosure. Other embodiments may be utilized and derived from thedisclosure, such that structural and logical substitutions and changesmay be made without departing from the scope of the disclosure.Accordingly, the disclosure and the figures are to be regarded asillustrative rather than restrictive.

One or more embodiments of the disclosure may be referred to herein,individually and/or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any particular invention or inventive concept. Moreover,although specific embodiments have been illustrated and describedherein, it should be appreciated that any subsequent arrangementdesigned to achieve the same or similar purpose may be substituted forthe specific embodiments shown. This disclosure is intended to cover anyand all subsequent adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the description.

The Abstract of the Disclosure is submitted with the understanding thatit will not be used to interpret or limit the scope or meaning of theclaims. In addition, in the foregoing Detailed Description, variousfeatures may be grouped together or described in a single embodiment forthe purpose of streamlining the disclosure. This disclosure is not to beinterpreted as reflecting an intention that the claimed embodimentsrequire more features than are expressly recited in each claim. Rather,as the following claims reflect, inventive subject matter may bedirected to less than all of the features of any of the disclosedembodiments. Thus, the following claims are incorporated into theDetailed Description, with each claim standing on its own as definingseparately claimed subject matter.

The above-disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other embodiments, which fall withinthe scope of the present disclosure. Thus, to the maximum extent allowedby law, the scope of the present disclosure is to be determined by thebroadest permissible interpretation of the following claims and theirequivalents, and shall not be restricted or limited by the foregoingdetailed description.

What is claimed is:
 1. A method comprising: receiving, at a mediadevice, a first data stream including first media content, the firstdata stream corresponding to a first channel; detecting at the mediadevice a channel change request from the first channel to a secondchannel; storing user history data at the media device, the user historydata indicating a departure point of the first media content that hadbeen received when the channel change request was detected; providing,by the media device to a display device, second media content of areceived second data stream corresponding to the second channel; and inresponse to detecting a second channel change request to return to thefirst channel, providing by the media device to the display device, thefirst media content of the first data stream beginning from thedeparture point of the first media content indicated by the user historydata.
 2. The method of claim 1, wherein the media device continues toreceive the first data stream while providing the second media contentto the display device, the method further comprising storing first mediacontent of the first data stream in a memory.
 3. The method of claim 2,wherein the first media content of the first data stream beginning fromthe departure point of the first media content indicated by the userhistory data is provided from the memory.
 4. The method of claim 2,further comprising, in response to detecting the channel change request,requesting the second data stream and the first data stream beginningfrom the departure point of the first media content indicated by theuser history data, wherein the second data stream corresponds to thesecond channel.
 5. The method of claim 1, further comprising, inresponse to the second channel change request, requesting the first datastream beginning from the location of the first media content indicatedby the user history data.
 6. The method of claim 1, wherein the userhistory data is stored based on a channel identifier specified in userpreferences data and wherein the channel identifier corresponds to thefirst channel.
 7. An apparatus comprising: a processor; and a memorystoring instructions that, when executed by the processor, cause theprocessor to perform operations comprising: providing to a displaydevice, first media content of a first data stream corresponding to afirst channel; detecting a channel change request from the first channelto a second channel; providing to the display device, second mediacontent of a second data stream corresponding to the second channel; andin response to detecting a second channel change request to return tothe first channel, providing to the display device, the first mediacontent of the first data stream beginning from a location correspondingto a time of the channel change request.
 8. The apparatus of claim 7,wherein the operations further comprise receiving the first data streamwhile providing the second media content to the display device, andstoring the first media content of the first data stream.
 9. Theapparatus of claim 7, wherein the operations further comprise storinguser history data, the user history data indicating a portion of thefirst media content that had been received when the channel changerequest was detected, wherein the location corresponding to the time ofthe channel change request is indicated by the user history data. 10.The apparatus of claim 9, wherein the user history data is stored basedon a channel identifier and wherein the channel identifier correspondsto the first channel.
 11. The apparatus of claim 7, wherein theoperations further comprise, in response to detecting the channel changerequest, requesting the second data stream from a server.
 12. Theapparatus of claim 7, wherein the operations further comprise, inresponse to the second channel change request, requesting from a serverthe first data stream beginning from the location corresponding to thetime of the channel change request.
 13. A computer-readable storagedevice storing instructions that, when executed by a processor, causethe processor to perform operations comprising: receiving a first datastream including first media content, the first data streamcorresponding to a first channel; in response to detecting a channelchange request from the first channel to a second channel, storing userhistory data at a memory, the user history data indicating a portion ofthe first media content that had been received when the channel changerequest was detected; providing, to a display device, second mediacontent of a second data stream corresponding to the second channel; andin response to detecting a second channel change request to return tothe first channel, providing to the display device, the first mediacontent of the first data stream beginning from a location of the firstmedia content indicated by the user history data.
 14. Thecomputer-readable storage device of claim 13, wherein the operationsfurther comprise continuing to receive the first data stream whileproviding the second media content to the display device, and storingfirst media content of the first data stream in a memory.
 15. Thecomputer-readable storage device of claim 14, wherein the first mediacontent of the first data stream beginning from the location of thefirst media content indicated by the user history data is retrieved fromthe memory.
 16. The computer-readable storage device of claim 14,wherein the operations further comprise, in response to detecting thechannel change request, requesting the second data stream from a server.17. The computer-readable storage device of claim 16, wherein the seconddata stream corresponds to the second channel.
 18. The computer-readablestorage device of claim 13, wherein the operations further comprise, inresponse to the second channel change request, requesting from a serverthe first data stream beginning from the location of the first mediacontent indicated by the user history data.
 19. The computer-readablestorage device of claim 13, wherein the user history data is storedbased on a channel identifier specified in user preferences data. 20.The computer-readable storage device of claim 19, wherein the channelidentifier corresponds to the first channel.